package god;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class J18SimpleDateFormat {
	
	public static void main(String[] args) {
		// DateFormat
		// Date 클래스나 Calendar 클래스로 날짜와 시간을 출력하는 것은 많은 비용이 필요
		// 적은 비용으로 간편하게 날짜/시간을 출력하려면 DateFormat을 사용하자
		// 단, 자주 사용하는 출력형태를 4가지로 분류
		Date now = new Date();
		DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
		System.out.println(df.format(now));
		
		df = DateFormat.getDateInstance(DateFormat.LONG);
		System.out.println(df.format(now));
		
		df = DateFormat.getDateInstance(DateFormat.MEDIUM);
		System.out.println(df.format(now));
		
		df = DateFormat.getDateInstance(DateFormat.SHORT);
		System.out.println(df.format(now));
		
		df = DateFormat.getTimeInstance(DateFormat.FULL);
		System.out.println(df.format(now));
		
		df = DateFormat.getTimeInstance(DateFormat.LONG);
		System.out.println(df.format(now));
		
		df = DateFormat.getTimeInstance(DateFormat.MEDIUM);
		System.out.println(df.format(now));
		
		df = DateFormat.getTimeInstance(DateFormat.SHORT);
		System.out.println(df.format(now));
		
		// SimpleDateFormat
		// DateFormat이 지원하는 출력형태 외 다양하게 날짜와 시간을 출력하기 위해 사용
		// 날짜 계산은 못함
		// y : 연도 표시(yy, yyyy)
		// M : 현재 월 표시 (M, MM)
		// d : 현재 일 표시 (d, dd)
		// E : 현재 요일을 표시하는 패턴 (E)
		// D : 현재 연도를 기준으로 총 일 수 표시 (DDD)
		// h : 현재 시간을 출력 (h, hh)
		// m : 현재 분을 출력 (m, mm)
		// s : 현재 초를 출력 (s, ss)
		// a : 오전, 오후 출력 (a)
		String fmt = "yyyy-MM-dd E a h:mm:ss";
		//fmt = "yyyy년 MM월 dd일 E요일";
		SimpleDateFormat sdf = new SimpleDateFormat(fmt);
		System.out.println(sdf.format(now));
		
	}

}
